
package com.hlkj.pay.app.merchant;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import com.hlkj.framework.common.pojo.CommonResult;
import com.hlkj.pay.dto.merchant.MerchantLimitPaymentDto;
import com.hlkj.pay.dto.merchant.config.MerchantPaymentConfigDto;
import com.hlkj.pay.dto.merchant.config.MerchantReportConfigDto;
import com.hlkj.pay.vo.merchant.req.config.MerchantLimitConfigReq;
import com.hlkj.pay.vo.merchant.req.config.MerchantPaymentAccountConfigReq;
import com.hlkj.pay.vo.merchant.req.config.MerchantPaymentConfigReq;
import com.hlkj.pay.vo.merchant.req.config.MerchantReportConfigReq;
import com.hlkj.pay.vo.merchant.req.report.MerchantPaymentConfigMappingReq;

/**
 * @author HlpayTeam
 * @date 2024/09/12 11:39
 */
public interface IMerchantConfigAppService {

    /**
     * 
     * @param merchantPaymentConfigReq
     * @return
     */
    CommonResult<Void> paymentConfig(MerchantPaymentConfigReq merchantPaymentConfigReq);

    /**
     * 
     * @param sn
     * @return
     */
    MerchantPaymentConfigDto queryPaymentConfig(String sn);
    /**
     *
     * @param merchantReportConfigReq
     * @return
     */
    CommonResult<Void> reportConfig(MerchantReportConfigReq merchantReportConfigReq);

    /**
     *
     * @param sn
     * @return
     */
    MerchantReportConfigDto queryReportConfig(String sn);

    /**
     *
     * @param merchantReportConfigPageReq
     * @return
     */
    CommonResult<Void> addMerchantPaymentAccountConfig(MerchantPaymentAccountConfigReq merchantReportConfigPageReq);

    /**
     *
     * @param merchantReportConfigPageReq
     * @return
     */
    CommonResult<Void> updateMerchantPaymentAccountConfig(MerchantPaymentAccountConfigReq merchantReportConfigPageReq);

    /**
     *
     * @param id
     * @return
     */
    CommonResult<Void> delMerchantPaymentAccountConfig(String code);

    /**
     *
     * @param merchantReportConfigPageReq
     * @return
     */
    CommonResult<Void> saveMerchantConfigMapping(MerchantPaymentConfigMappingReq merchantReportConfigPageReq);

    /**
     *
     * @param merchantReportConfigPageReq
     * @return
     */
    CommonResult<Void> delMerchantConfigMapping(MerchantPaymentConfigMappingReq merchantReportConfigPageReq);

    /**
     *
     * @param merchantLimitConfigReq
     * @return
     */
    CommonResult<Void> limitConfig(MerchantLimitConfigReq merchantLimitConfigReq);

    /**
     *
     * @param sn
     * @return
     */
    MerchantLimitPaymentDto queryLimitConfig(String sn);
}
